package login

import (
	"fmt"
	"gitee.com/liumou_site/gf"
	"gitee.com/liumou_site/logger"
	"gitee.com/liumou_site/tencent-cloud-ssl-automatic/module/app"
	"github.com/BurntSushi/toml"
)

// ReadLoginConfig 读取登录配置文件。
// 参数:
//
//	tf: 配置文件的路径。
//	sl: 指向SSL模块的指针，用于存储登录配置。
//
// 返回值:
//
//	如果读取或解析配置文件时发生错误，则返回错误。
func ReadLoginConfig(file string, sl *app.SSL) error {
	var res *app.LoginStruct
	// 创建一个文件对象，用于后续的文件操作。
	f := gf.NewFile(file)
	// 检查文件是否存在。
	f.IsFile()
	// 如果文件不存在，则记录错误日志。
	if !f.IsFiles {
		logger.Error("配置文件不存在: ", file)
		return fmt.Errorf("配置文件不存在: %s", file)
	}
	// 开始解析配置文件。
	_, err := toml.DecodeFile(f.FileName, &res)
	// 如果解析过程中出现错误，则记录错误日志并抛出异常。
	if err != nil {
		logger.Error("配置文件解析失败: ", f.FileName)
		panic(err)
	}

	// 配置文件读取成功后，记录成功日志。
	logger.Info("配置文件读取成功: ", f.FileName)
	// 输出登录配置的启用状态。
	logger.Info(res.Enable)
	if res.Enable {
		// 将解析的结果添加到SSL模块的登录配置列表中。
		logger.Info("登录配置已启用: ", res.Name)
		sl.LoginList = append(sl.LoginList, *res)
		sl.Login = res
	} else {
		logger.Info("登录配置未启用: ", res.Name)
		fmt.Println(res)
	}
	return nil
}
